import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Use2 {
/*    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();

        // 1. 尾插
        list.add(1);//尾插1
        list.add(2);
        list.add(3);
        System.out.println(list.toString()); // [1,2,3]

        // 2. 在pos位置插入元素data
        list.add(1,3); //在1下标插入数据元素3
        System.out.println(list.toString()); // [1, 3, 2, 3]

        List<Integer> list1 = new ArrayList<>(list);
        // 3.将list集合中的元素尾插到list1中
        list.addAll(list1);
        System.out.println(list.toString());//[1, 3, 2, 3, 1, 3, 2, 3]
        // 4. 将list1集合中的元素从1下标插入list中
        list.addAll(1,list1);
        System.out.println(list.toString());
    }*/
/*public static void main(String[] args) {
    ArrayList<Integer> list= new ArrayList<>();
    list.add(1);
    list.add(3);
    list.add(5);
    list.add(3);
    list.add(1);
    //获取1下标的元素
    System.out.println(list.get(1));// 3
    //设置0下标的元素为3
    System.out.println(list.set(0,3));// 1
    //判断集合中是否存在元素5
    System.out.println(list.contains(5));// true
    //返回第一次3出现的位置
    System.out.println(list.indexOf(3));// 0
    //返回最后一次出现3的位置
    System.out.println(list.lastIndexOf(3));// 3

    //截取0~3位置的元素
    List<Integer> sub = list.subList(0,3);
    System.out.println(sub.toString());// [3, 3, 5]
    System.out.println(list.toString());// [3, 3, 5, 3, 1]

    //由于截取的集合sub仍然是引用了原数组list，故改变sub的值会改变list的值
    //将sub中元素全部修改为8
    for (int i = 0; i < sub.size(); i++) {
        sub.set(i,8);
    }
    System.out.println(sub.toString()); // [8, 8, 8]
    System.out.println(list.toString()); // [8, 8, 8, 3, 1]
}*/

    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        System.out.println(list.toString());
        //for循环
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + " ");
        }
        System.out.println();
        //foreach循环
        for (Integer x : list){
            System.out.print(x + " ");
        }

        //使用迭代器
        Iterator<Integer> iterator = list.iterator(); // 创建迭代器
        while (iterator.hasNext()){
            System.out.print(iterator.next() + " ");
        }
    }

}
